package edu.hgnu.utils;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class RabbitMQUtils {

    //ConnectionFactory是一个重量级工厂，每次创建消耗性能，使用一次创建
    private static ConnectionFactory connFactory;

    //获取连接，在类加载的时候加载一次；
    static {
        //创建MQ连接工厂对象
        connFactory = new ConnectionFactory();
        connFactory.setHost("121.4.141.20");  //MQ所在主机ip地址；
        connFactory.setPort(5672);  //应用端口号
        connFactory.setVirtualHost("/ems");  //MQ 的内部连接虚拟主机
        connFactory.setUsername("guest");  //登录的用户名，密码
        connFactory.setPassword("guest");
    }

    //获取连接
    public static Connection getConnection(){
        try {
            return connFactory.newConnection();
        }catch (Exception e){
            e.getStackTrace();
        }
        return null;
    }

    //关闭连接
    /**
     * @param connection RabbitMQ连接
     * @param channel channel
     */
    public static void closeConnAndChanel(Connection connection, Channel channel){
        try {
            if (connection!=null){
                connection.close();
            }
            if (channel!=null){
                channel.close();
            }
        }catch (Exception e){
            e.getStackTrace();
        }
    }
}
